package top.jacktgq.sxt.bio.udp.demo7;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * @Author CandyWall
 * @Date 2019/10/20--18:51
 * @Description UDP 多次交流 接收端：
 *                     1、使用DatagramSocket指定端口 创建接收端
 *                     2、准备容器 封装成DatagramPacket包裹
 *                     3、阻塞式接收包裹receive(DatagramPacket p)
 *                     4、分析数据
 *                      byte[] getData()
 *                             getLenth()
 *                     5、释放资源
 */
public class UDPTalkServer {
    public static void main(String[] args) throws Exception{
        System.out.println("接收方启动中...");
        //1、使用DatagramSocket指定端口 创建接收端
        DatagramSocket server = new DatagramSocket(9999);
        while (true) {
            //2、准备容器 封装成DatagramPacket包裹
            byte[] container = new byte[1024*60];
            DatagramPacket packet = new DatagramPacket(container, 0, container.length);
            //3、阻塞式接收包裹receive(DatagramPacket p)
            server.receive(packet);
            //4、分析数据 byte[] getData() getLenth()
            byte[] data = packet.getData();
            int len = packet.getLength();
            String content = new String(data, 0, len);
            System.out.println("Receive:" + content);
            if ("bye".equals(content)) {
                break;
            }
        }
        //5、释放资源
        server.close();
    }
}
